package services.commons;

import java.util.ArrayList;
import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import util.assembly.LocalidadAssembly;
import util.assembly.ProvinciaAssembly;
import bo.Localidad;
import bo.PersistentObject;
import bo.Provincia;
import dao.LocalidadDAO;
import dao.ProvinciaDAO;
import dto.LocalidadDTO;
import dto.ProvinciaDTO;

public class CommonsService {

	LocalidadDAO localidadDAO;
	
	ProvinciaDAO provinciaDAO;
	
	/**
	 * Obtiene todos las localidades
	 * @return	lista de localidades
	 */
	@Transactional
	public List<LocalidadDTO> getAllLocalidades() {
		
		List<LocalidadDTO> lista = new ArrayList<LocalidadDTO>();
		
		List<PersistentObject> localidades = localidadDAO.findAll(Localidad.class);
		for (PersistentObject persistentObject : localidades) {
			lista.add(LocalidadAssembly.toDTO((Localidad)persistentObject));
		}
		return lista;
	}

	/**
	 * Obtiene todos las provincias
	 * @return	lista de provincias
	 */
	@Transactional
	public List<ProvinciaDTO> getAllProvincias() {
		
		List<ProvinciaDTO> lista = new ArrayList<ProvinciaDTO>();
		
		List<PersistentObject> provincias = provinciaDAO.findAll(Provincia.class);
		for (PersistentObject persistentObject : provincias) {
			lista.add(ProvinciaAssembly.toDTO((Provincia)persistentObject));
		}
		return lista;
	}
	

	public LocalidadDAO getLocalidadDAO() {
		return localidadDAO;
	}

	public void setLocalidadDAO(LocalidadDAO localidadDAO) {
		this.localidadDAO = localidadDAO;
	}

	public ProvinciaDAO getProvinciaDAO() {
		return provinciaDAO;
	}

	public void setProvinciaDAO(ProvinciaDAO provinciaDAO) {
		this.provinciaDAO = provinciaDAO;
	}
	
}
